package org.aphelie.torg.ruler.internal.core.text;

import java.io.Serializable;

import org.eclipse.core.runtime.CoreException;

public interface IDocumentAttributeNode extends IDocumentRange, Serializable, IDocumentXMLNode {

    // Used by text edit operations

    void setEnclosingElement(IDocumentElementNode node);

    IDocumentElementNode getEnclosingElement();

    void setNameOffset(int offset);

    int getNameOffset();

    void setNameLength(int length);

    int getNameLength();

    void setValueOffset(int offset);

    int getValueOffset();

    void setValueLength(int length);

    int getValueLength();

    String getAttributeName();

    String getAttributeValue();

    void setAttributeName(String name) throws CoreException;

    void setAttributeValue(String value) throws CoreException;

    String write();

    // Not used by text edit operations
    public void reconnect(IDocumentElementNode parent);

}
